function f_check_net_delay()
{
    declare net_delay format_image __ fun_name
    fun_name="f_check_net_delay"
    idc_mark=0                                                 #表示master与执行ddl的机器是否在同城, 0表示不是同城, 1表示同城
    format_mark=0                                              #表示master 的 binlog_format配置是否是row, 0表示不是row, 1表示是row
    format_image=0                                             #表示master 的 binlog_row_image配置是否是full, 0表示不是full, 1表示是full
    [ -z "${mysql_host}" ] && return 0

    if [ "${execute_opt}x" != "0x" ]
    then
        net_delay="$(ping ${mysql_host} -c 3 -w 3 2>/dev/null|awk '/time=/{split($0,a,"time=");split(a[2],b,"ms");sum += b[1];}
            END{print ((sum / 5 < 40 && sum > 0) ? 1 : 0)}')"      #本机到mysql master节点的延迟超过40ms就视为网络延迟比较严重, 就不建议使用ghost了
    else
        net_delay=1
    fi

    net_delay="$(ping ${mysql_host} -c 3 -w 3 2>/dev/null|awk '/time=/{split($0,a,"time=");split(a[2],b,"ms");sum += b[1];}
        END{print ((sum / 5 < 40 && sum > 0) ? 1 : 0)}')"      #本机到mysql master节点的延迟超过40ms就视为网络延迟比较严重, 就不建议使用ghost了
    idc_mark="$(awk '{print (($0 < 40 && $0 > 0) ? 1 : 0)}' <<< "${net_delay}")"
    __="'${localhost_ip}' 到 '${mysql_host}' 的网络延迟为 ${net_delay}ms"
    if [ -z "${net_delay}" ]
    then
        idc_mark=0   #f_get_alter_sql函数部分, 如果有drop pri key, add pri key这种就将idc_mark置为1, 意思是说这种操作统一使用ghost去操作
    elif [ "${idc_mark}x" == "0x" ]
    then
        f_logging "$(eval echo ${log_addr}):WARN" "${__}, 本次改表使用pt-osc进行操作 " "2"
    else
        f_logging "$(eval echo ${log_addr}):INFO" "${__}"
    fi
    #获取同城(也可能没有同城的, 这样就会随机选一个slave)slave的信息, 用户判断延迟, 改表前有延迟将终止改表, 改表过程中有延迟将限流
    [ -n "${mysql_slave_host}" ] && mysql_slave_host="$(awk -F_ '{print $2}' <<< "${mysql_slave_host}"):${mysql_port}"
    __="show variables like 'binlog_format'"
    format_mark="$(timeout ${exe_time} ${mysql_comm} -NBe "${__}" 2>&1|sed '/Using a password/d'|awk '{print $2}'|grep -icw "row")" || true

    [ "$(grep -cP "^(5\.(0|1|5))" <<< "${mysql_version}")x" == "1x" ] && return 0 #5.6才开始支持binlog_row_image

    __="show variables like 'binlog_row_image'"
    format_image="$(timeout ${exe_time} ${mysql_comm} -NBe "${__}" 2>&1|sed '/Using a password/d'|awk '{print $2}'|grep -icw "full")" || true
    [ "${format_image}x" != "1x" ] && format_mark=0 && unset format_image
    #f_get_alter_sql函数部分, 如果有drop pri key, add pri key这种就将format_mark置为1, 意思是说这种操作统一使用ghost去操作
    return 0
}


